Точки перехвата
Обработчик может быть вызван в точках перехвата, описанных ниже.
Перед постановкой в очередь
Обработчики могут быть вызваны перед тем как сообщение будет помещено в очередь MTA. Если это сообщение получено по SMTP, обработчики вызываются синхронно во время сеанса SMTP.
В этот момент у сообщения может быть несколько получателей, перечисленных в конверте сообщения. Обработчик может выполнять действия только с целым сообщением, то есть, он не может, к примеру, отклонить какое-либо сообщение для одних получателей, но принять его для других.
Перед локальной доставкой
Обработчики вызываются после чтения сообщения из очереди MTA и принятия решения об отправке его локальному получателю. Обратите внимание, что сообщения, отправляемые на несуществующие локальные адреса, также обрабатываются.
В этот момент у сообщения есть только один получатель. Сообщения, адресованные нескольким локальным получателям, разбиваются на несколько сообщений на более ранней стадии. Обработчик может выполнять действия с сообщением, адресованным одному получателю, не затрагивая аналогичных сообщений, адресованных другим локальным получателям.
Перед удаленной доставкой
Эти обработчики вызываются после чтения сообщения из очереди MTA и принятия решения об отправке его удаленному получателю.
В этот момент у сообщения может быть несколько получателей. Это происходит, только если сообщение должно быть доставлено на один и тот же хост для всех этих получателей. Если у сообщения есть несколько получателей, для которых требуется удаленная доставка на разные хосты, такое сообщение разбивается на несколько сообщений на более ранней стадии.
Перед отправкой данных по SMTP
Эти обработчики вызываются после отправки конверта сообщения, но перед отправкой тела сообщения (перед выполнением команды DATA
протокола SMTP). Используются службами, которые обрабатывают только заголовки сообщений без их содержимого.